﻿<!--******************************************************************************************-->
//
//  警告: 本電腦程式著作受著作權法及國際公約之保護。
//  未經授權擅自複製或散佈本電腦程式著作之全部或部分
//  ，將導致嚴厲的民事或刑事處份，且將被依法提起最大
//  範圍的追訴。
//
//  CopyRight (C) Galaxy Software Service
//<!--******************************************************************************************-->

//<!--******************************************************************************************-->
//函數名稱：GSSSetCodeNameToCbo
//目    的：根據代碼名稱下拉式選單的選擇項目，設定代碼ID欄位值
//參數說明：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSSetCodeIDByCbo(){
//	if(event.propertyName=='value'){
		var objCboCode=event.srcElement;
		var objContainer=GSSGetParentElementByTag(event.srcElement,'SPAN');
		var colChildren=objContainer.children;
		var objTxtCodeID=colChildren[0];
		objTxtCodeID.value=objCboCode.value;
		return false;
//	}
}

//<!--******************************************************************************************-->
//函數名稱：GSSSetCodeNameToCbo
//目    的：根據代碼代號欄位輸入的值，設定代碼名稱下拉式選單的Focus選項
//參數說明：無
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSSetCodeNameToCbo(){
	//由於IE5.0觸發onpropertychange多次之後會發生內部錯誤，所以更改為oncnange
//	if(event.propertyName=='value'){
		var objTxtCodeID=event.srcElement;
		var objContainer=GSSGetParentElementByTag(event.srcElement,'SPAN');
		var colChildren=objContainer.children;
		var objCboCode=colChildren[1];
		for(var i=0;i<objCboCode.length;i++){
			if(objCboCode.options[i].value==objTxtCodeID.value){
				objCboCode.selectedIndex=i;
				return true;}
		}
		objTxtCodeID.value='';
		objCboCode.selectedIndex=-1;
		return false;
//	}
}

//<!--******************************************************************************************-->
//函數名稱：GSSGetCodeName
//目    的：取得代碼名稱
//			「此處是透過XMLHTTP物件送出Request字串，因此在鏈節路徑的程式執行完後必須回傳XML格式的字串」
//參數說明：vstrURL：取得代碼名稱鏈節路徑
//			PS：以上參數可以透過設定「代碼ID」物件的屬性而取得，說明如下（建議使用此方法）
//			GSS_URL：鏈節路徑
//			GSS_FILTER：篩選條件字串，請參考<1>
//			GSS_DATAFLD：資料欄位代號清單，請參考<2>
//			GSS_EXATTR：請參考<5>
//	開啟的篩選資料視窗取值說明：（使用Request.QueryString方式接收傳入的參數）											
//	<1> strFilter：篩選條件字串											
//	有時需要的參數並非存在PAGE的HTML物件中，而是一般常數時，可以設定「>」按鈕的GSS_FILTER屬性，另開視窗顯示相關的字彙時，會將此參數值透過strFilter變數傳遞											
//	<2> strDataFld：資料欄位代號清單											
//	選取GRID上某一列資料或是CLICK「確認(S)」時，根據strDataFld欄位名稱取得表格內的資料，
//	如果為多個欄位時使用「,」作為欄位間的分隔符號，欄位資料間使用「\|」作為分隔字元，
//	並將目前選取的資料帶回輸入方塊											
//	<3> strObjCodeID_Name：「代碼ID方塊項目」物件name屬性	
//	<4> strObjCodeName_Name：「代碼名稱方塊項目」物件name屬性							
//	<5> 根據「GSS_EXATTR」屬性值時，取得Form中欄位內的資料傳遞至「字彙查詢畫面」，
//		傳遞格式為：物件1name=物件1Value&物件2name=物件2Value…，
//		因此需取格物件1的VALUE時，可以透過Request.QueryString("物件1name")指令取值											
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSGetCodeName(vstrURL){
    var objTxtCodeID=event.srcElement;
    var strCodeID=objTxtCodeID.value;
    var objContainer=GSSGetParentElementByTag(objTxtCodeID,'SPAN');
    var colChildren=objContainer.children;
    var objTxtCodeName=colChildren[1];
    var objBtn=colChildren[2];
    if(strCodeID==''){
        objTxtCodeName.value='';
        return false;}

	var blnRtn=GSSgetFilterAtrr(objTxtCodeID,vstrURL);
	if(!blnRtn) return false;
	
    if ((!GSS_URL)||(GSS_URL=='')) return false;	
	if(GSS_DATAFLD==''){
		strDataFld='CODE_ID,CODE_NAME';}
	else{
		strDataFld=GSS_DATAFLD;}

    var arrDataFld=strDataFld.split(',');
    var strURL=GSS_URL;
    //為了與舊版本相容，因此如果objTxtCodeID未設定GSS_FILTER屬性時，則取得objBtn所設定的屬性
    if(objTxtCodeID.getAttribute('GSS_FILTER')==null){
    	GSSgetFilterAtrr(objBtn,vstrURL);
    }
    
    strURL=strURL + '?strCode_ID=' + escape(strCodeID) + '&strFilter=' + escape(GSS_FILTER) + '&strDataFld=' + escape(strDataFld);
	if(GSS_EXATTR!='') strURL +=GSS_EXATTR;

    objBtn.disabled=true;
    objTxtCodeID.disabled=true;
    var xmlRtn=GSSXmlSubmit(strURL);
    if(typeof(xmlRtn)=='object'){
        if(xmlRtn.getElementsByTagName('LOG_MESS').length>0){
                GSSMsgDesc(xmlRtn.getElementsByTagName('LOG_MESS').item(0).text);
                objTxtCodeID.value='';
                objTxtCodeName.value='';
                objBtn.disabled=false;
                objTxtCodeID.disabled=false;
                objTxtCodeID.focus();}
        else{
            objTxtCodeID.value=xmlRtn.getElementsByTagName(arrDataFld[0]).item(0).text;
            objTxtCodeName.value=xmlRtn.getElementsByTagName(arrDataFld[1]).item(0).text;
            objBtn.disabled=false;
            objTxtCodeID.disabled=false;}
    }
}

//<!--******************************************************************************************-->
//函數名稱：GSSCodeFilter
//目    的：點選「代碼輸入方塊控制項」的篩選資料按鈕時執行的函數
//參數說明：vstrURL：鏈節路徑
//			vintOpenType：開啟視窗方式
//			vstrWinName：開啟視窗名稱
//			vstrWinFeatures：開啟視窗的Features外觀屬性
//			vblnWinReplace：開啟視窗鏈節至其他路徑時，是否記錄URL(IE的History功能)
//
//			PS：以上參數可以透過設定「篩選按鈕」物件的屬性而取得，說明如下（建議使用此方法）
//			GSS_URL：鏈節路徑
//			GSS_OPENTYPE：開啟視窗方式
//			GSS_WINNAME：開啟視窗名稱
//			GSS_WINFEATURES：開啟視窗的Features外觀屬性
//			GSS_WINREPLACE：開啟視窗鏈節至其他路徑時，是否記錄URL(IE的History功能)
//			GSS_FILTER：篩選條件字串，請參考<1>
//			GSS_DATAFLD：資料欄位代號清單，請參考<2>
//			GSS_EXATTR：請參考<5>
//	開啟的篩選資料視窗取值說明：（使用Request.QueryString方式接收傳入的參數）											
//	<1> strFilter：篩選條件字串											
//	有時需要的參數並非存在PAGE的HTML物件中，而是一般常數時，可以設定「>」按鈕的GSS_FILTER屬性，另開視窗顯示相關的字彙時，會將此參數值透過strFilter變數傳遞											
//	<2> strDataFld：資料欄位代號清單											
//	選取GRID上某一列資料或是CLICK「確認(S)」時，根據strDataFld欄位名稱取得表格內的資料，
//	如果為多個欄位時使用「,」作為欄位間的分隔符號，欄位資料間使用「\|」作為分隔字元，
//	並將目前選取的資料帶回輸入方塊											
//	<3> strObjCodeID_Name：「代碼ID方塊項目」物件name屬性	
//	<4> strObjCodeName_Name：「代碼名稱方塊項目」物件name屬性							
//	<5> 根據「GSS_EXATTR」屬性值時，取得Form中欄位內的資料傳遞至「字彙查詢畫面」，
//		傳遞格式為：物件1name=物件1Value&物件2name=物件2Value…，
//		因此需取格物件1的VALUE時，可以透過Request.QueryString("物件1name")指令取值											
//版本變更：
//xx. YYYY/MM/DD	AUTHOR		COMMENTS
// 1. 2002/06/19	Brenda		New Create
//<!--******************************************************************************************-->
function GSSCodeFilter(vstrURL,vintOpenType,vstrWinName,vstrWinFeatures,vblnWinReplace){
	var vntReturn='';
	var strURL='';
	var strType='';

	var objDocument=GSSGetDocument();
	var objBtn=event.srcElement;
	var objTDBody=GSSGetParentElementByTag(objBtn,'TD');
	var objTR=GSSGetParentElementByTag(objTDBody,'TR');
	var objForm=GSSGetParentElementByTag(objTR,'FORM');
	var objLabCap=objTR.childNodes[objTDBody.cellIndex-1].getElementsByTagName('LABEL')(0) ;
	var objContainer=GSSGetParentElementByTag(objBtn,'SPAN') ;
	var colChildren=objContainer.children;
	var objTxtCodeID=colChildren[0];
	var objTxtCodeName=colChildren[1];
	intDeep=objForm['GSStxtFunDeep'].value;
	if(intDeep!=''){
		intDeep=parseInt(intDeep)+1;}
	else{
		intDeep=1;}

	var blnRtn=GSSgetFilterAtrr(objBtn,vstrURL,vintOpenType,vstrWinName,vstrWinFeatures,vblnWinReplace);
	if(!blnRtn) return false;

//	var strFilter=GSSgetAttribute(objBtn,'GSS_FILTER');
//	var strDataFld=GSSgetAttribute(objBtn,'GSS_DATAFLD');
        
	if(GSS_DATAFLD==''){
		strDataFld='CODE_ID,CODE_NAME';}
	else{
		strDataFld=GSS_DATAFLD;}
		
	strURL = GSS_URL + '?GSStxtFunDeep=' + intDeep + '&strFilter=' + escape(GSS_FILTER) + '&strDataFld=' + escape(GSS_DATAFLD);
	if(GSS_EXATTR!='') strURL +=GSS_EXATTR;
	
	if(typeof(objLabCap)=='object'){
		strURL += '&strFUN_NAME=' + escape(objLabCap.innerText);
	}
	
	strURL += '&strObjCodeID_Name=' + escape(objTxtCodeID.name);
	strURL += '&strObjCodeName_Name=' + escape(objTxtCodeName.name);
	strURL += '&GSSStopRec=Y';		//避免關閉視窗後，連接至下一頁，再回上一頁，發生錯誤

	GSScreateInputElm(objDocument,objForm,'GSSnameSrcCodeID','HIDDEN','display:none;',objTxtCodeID.name);
	GSScreateInputElm(objDocument,objForm,'GSSnameSrcCodeName','HIDDEN','display:none;',objTxtCodeName.name);

	if (GSS_OPENTYPE==1){
		var objWin=window.open(strURL,GSS_WINNAME,GSS_WINFEATURES,GSS_WINREPLACE);
		objWin.focus();
		document.body.attachEvent('onclick',GSSfocusWinOpened);
	}
	else{
		vntReturn=window.showModalDialog(strURL,GSS_WINNAME,GSS_WINFEATURES);
		if(typeof(vntReturn)=='string'){
			var arrCode=vntReturn.split('\\,');
			if(objTxtCodeID.value!='') objTxtCodeID.value=arrCode[0];
			if(arrCode.length>1){
				objTxtCodeName.value=arrCode[1];
			}
		}
	}
}